home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / UTILITY / SHOWIMPO.M < prev    next >
Encoding:
Text File  |  1990-07-16  |  1.5 KB  |  59 lines

  1. MODULE ShowImports;
  2.  
  3. (*
  4.  * Zeigt die importierten Module eines residenten Moduls an.
  5.  *
  6.  * Beim Start des Programms kann ein Modulname eingegeben werden,
  7.  * daraufhin werden alle Importe angezeigt.
  8.  * Ende des Programms durch eine Leereingabe.
  9.  *)
  10.  
  11. FROM ModCtrl IMPORT GetProcAddr, QueryImports;
  12.  
  13. FROM SYSTEM IMPORT ADDRESS;
  14.  
  15. IMPORT InOut;
  16.  
  17. VAR shown: BOOLEAN;
  18.  
  19. PROCEDURE showIt ( REF modName:  ARRAY OF CHAR;
  20.                        modAddr:  ADDRESS;
  21.                        modLen:   LONGCARD;
  22.                        varAddr:  ADDRESS;
  23.                        varLen:   LONGCARD;
  24.                    REF fileName: ARRAY OF CHAR;
  25.                        module:   BOOLEAN;
  26.                        loaded:   BOOLEAN;
  27.                        resident: BOOLEAN );
  28.   BEGIN
  29.     InOut.Write (' ');
  30.     InOut.WriteString (modName);
  31.     shown:= TRUE
  32.   END showIt;
  33.  
  34. VAR s: ARRAY [0..50] OF CHAR;
  35.     loc: ADDRESS;
  36.  
  37. BEGIN
  38.   LOOP
  39.     InOut.WriteString ('Modul? ');
  40.     InOut.ReadString (s);
  41.     IF s[0]=0C THEN EXIT END;
  42.     InOut.WriteLn;
  43.     (* Haben wir das Modul überhaupt im Speicher? *)
  44.     GetProcAddr (s, loc);
  45.     IF loc # NIL THEN
  46.       InOut.WriteString ('Importe: ');
  47.       shown:= FALSE;
  48.       QueryImports (s, showIt);
  49.       IF NOT shown THEN
  50.         InOut.WriteString ('keine!');
  51.       END
  52.     ELSE
  53.       InOut.WriteString ('Dies Modul ist nicht resident (ggf. vorher laden!)');
  54.     END;
  55.     InOut.WriteLn;
  56.     InOut.WriteLn;
  57.   END
  58. END ShowImports.
  59.